// 模拟常用的高阶函数：map、every、some

// map
// const map = (array, fn) => {
//     let results = []
//     for (let value of array) {
//         results.push(fn(value))
//     }
//     return results
// }

// 测试
// let arr = [1, 2, 3, 4]
// arr = map(arr, v => v * v)
// console.log(arr)


// every 检测数组中的元素是否都满足指定的条件
const every = (array, fn) => {
    let result = true
    for (let value of array) {
        result = fn(value)
        if (!result) {
            break
        }
    }
    return result
}

// 测试
// let arr = [1, 3, 5, 4, 88, 99, 100]
// let r = every(arr, v => v > 10)
// console.log(r)



// some 用来检测数组中的元素是否有一个满足指定的条件
const some = (array, fn) => {
    let result = false
    for (let value of array) {
        result = fn(value)
        if (result) {
            break
        }
    }
    return result
}

// 测试
let arr = [1, 3, 4, 9]
let r = some(arr, v => v % 2 === 0)
console.log(r)

